#ifndef STATE_H
#define STATE_H

class GameManager;

class State
{
public:
    State(){}
    virtual ~State(){}

    virtual void init(int id = 0) = 0;
    virtual void handleEvents(GameManager* m) = 0;
    virtual void update(GameManager* m) = 0;
    virtual void render(GameManager* m) = 0;

    void setID(int id) { m_id = id; }

    int getID() { return m_id; }

protected:
    int m_id;
};

#endif
